{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "数据集下载地址：https://ww2.amstat.org/publications/jse/jse_data_archive.htm\n",
    "<br>数据集描述：https://ww2.amstat.org/publications/jse/datasets/normtemp.txt\n",
    "<br>数据：normtemp.dat.txt "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import pylab\n",
    "import math\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "from scipy.stats import norm\n",
    "import scipy.stats\n",
    "import warnings\n",
    "warnings.filterwarnings(\"ignore\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "df = pd.read_csv('normtemp.dat.txt', sep= '   ',\n",
    "                 names=['Temperature','Gender','Heart Rate'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Temperature</th>\n",
       "      <th>Gender</th>\n",
       "      <th>Heart Rate</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>130.000000</td>\n",
       "      <td>130.000000</td>\n",
       "      <td>130.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>98.249231</td>\n",
       "      <td>1.500000</td>\n",
       "      <td>73.761538</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>0.733183</td>\n",
       "      <td>0.501934</td>\n",
       "      <td>7.062077</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>96.300000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>57.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>97.800000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>69.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>98.300000</td>\n",
       "      <td>1.500000</td>\n",
       "      <td>74.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>98.700000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>79.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>100.800000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>89.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       Temperature      Gender  Heart Rate\n",
       "count   130.000000  130.000000  130.000000\n",
       "mean     98.249231    1.500000   73.761538\n",
       "std       0.733183    0.501934    7.062077\n",
       "min      96.300000    1.000000   57.000000\n",
       "25%      97.800000    1.000000   69.000000\n",
       "50%      98.300000    1.500000   74.000000\n",
       "75%      98.700000    2.000000   79.000000\n",
       "max     100.800000    2.000000   89.000000"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Temperature</th>\n",
       "      <th>Gender</th>\n",
       "      <th>Heart Rate</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>96.3</td>\n",
       "      <td>1</td>\n",
       "      <td>70</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>96.7</td>\n",
       "      <td>1</td>\n",
       "      <td>71</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>96.9</td>\n",
       "      <td>1</td>\n",
       "      <td>74</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>97.0</td>\n",
       "      <td>1</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>97.1</td>\n",
       "      <td>1</td>\n",
       "      <td>73</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Temperature  Gender  Heart Rate\n",
       "0         96.3       1          70\n",
       "1         96.7       1          71\n",
       "2         96.9       1          74\n",
       "3         97.0       1          80\n",
       "4         97.1       1          73"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head()  #Temperature温度，Gender男女，Heart Rate心跳频率"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 体温的分布是正态的吗？"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Average （Mu）：98.24923076923076/Standard Deviation: 0.7303577789050376\n"
     ]
    }
   ],
   "source": [
    "observed_temperatures = df['Temperature'].sort_values()\n",
    "bin_val = np.arange(start=observed_temperatures.min(), \n",
    "                    stop=observed_temperatures.max(), step=.05)\n",
    "# 计算均值和标准差\n",
    "mu, std = np.mean(observed_temperatures), np.std(observed_temperatures)\n",
    "\n",
    "#基于均值和标准差画\n",
    "p = norm.pdf(observed_temperatures, mu, std)\n",
    "\n",
    "plt.hist(observed_temperatures, bins=bin_val, normed=True, stacked=True)\n",
    "plt.plot(observed_temperatures, p, color='red')\n",
    "plt.xticks(np.arange(95.75,101.25,0.25),rotation=90)\n",
    "plt.xlabel('Human Body Temperature Distributions')\n",
    "plt.xlabel('human body temperature')\n",
    "plt.show()\n",
    "\n",
    "print('Average （Mu）：'+str(mu)+'/' 'Standard Deviation: '+str(std))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 正态检验"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Shapiro-Wilk Stat: 0.9865769743919373 Shapiro-Wilk p_Value: 0.2331680953502655\n",
      "p: 0.2587479863488212\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "x = observed_temperatures\n",
    "\n",
    "shapiro_test, shapiro_p = scipy.stats.shapiro(x)\n",
    "print('Shapiro-Wilk Stat:', shapiro_test, 'Shapiro-Wilk p_Value:', shapiro_p)\n",
    "\n",
    "k2, p = scipy.stats.normaltest(observed_temperatures)\n",
    "print('p:',p)  #大于0.05即可接受为正态分布\n",
    "\n",
    "scipy.stats.probplot(observed_temperatures, dist='norm', plot=pylab)\n",
    "pylab.show()  #越接近斜线，越符合正态分布"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 第二种检验正态分布方法"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Mean temperature : 98.24923076923076 with standard deviation of +/- 0.730357778905038\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x1f769ea64e0>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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KObDHzbx3vcb+HJVHgAZqS0Y1bsDx/dqzyl9O5KSVI/FftIzVWk3MUriIiLhUFfVmzEysL+sPaPy0yC7CkuYsXgTX63axsdLt5BfVErnNkncdEpvzh7UhYz2LTkgTeA+sFRQEhcRCYfsLPAVgfMHXqtW2tVUxXtLfMxauY13FqznoyWbKS71k9oygVG9O3DN6J7069Ja6wJIJUriIiLhkJwaSOAQeE1O3bdPeibbDhnEZ8u38tHMuXy1Oo/8olLatohn/PB0zh+SxsC0NkrcUiMlcRGRg1HTfe/CPALLU/gDr4V55U1+v2Peuh289PVaPly8ieJSPx1SEhk7uAun9uvEiMNSSYiLseeuJSKUxEVEDlRt970zRkJcYqV73nuKSvnP3Bz+9slKdhaU0CLBy0XD0rg0s3vNI8pFaqE/9RrIvffeS79+/Rg4cCCDBw/m22+/DevnGz16NFUftauv7Oxs+vfvX2efV1555YCOL9JslN/39lXc9y5Tds/7xD9RcMnbPLU6leP++il3vbeEXoe24pGLBzH39pO555wB9O3SWglcDogq8Qbw9ddf8/777/Pdd9+RmJjItm3bypf5jFVlSfzSSy+NdCgi0auO+97+rsN5Z2sX7puyjC27lzGqdwd+PeZwhmccovvc0iBUiTeAjRs30r59+/L5vNu3b0+XLl0AmDx5MsOHD6d///5MmjSpfJ7v0aNH89vf/pYTTjiBPn36MGfOHM477zx69erF7bffDgQS6ZFHHsmECRMYOHAgF1xwQbXren/00UeMGDGCIUOGcOGFF5Kfn79Pn3nz5jFo0CBGjBjBE088Ub4/OzubkSNHMmTIEIYMGcJXX30FwK233kpWVhaDBw/mkUceqbGfSJNX25rT5fe9oep971Vb8jnnyS/53X8W0qlNEq9NOoYXrhxOZo92SuDScJxzMfVv6NChrqolS5bss69O67517osHA68Haffu3W7QoEGuV69e7pprrnGfffZZeVteXl75+8suu8xNnTrVOefcqFGj3O9//3vnnHOPPvqo69y5s9uwYYPbu3ev69q1q9u2bZtbs2aNA9ysWbOcc85deeWV7oEHHij/+Dlz5ritW7e6kSNHuvz8fOecc/fdd5+766679olxwIAB5XHdfPPNrl+/fs455/bs2eMKCwudc86tWLHClZ3fmTNnujPPPLP842vq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\n",
      "text/plain": [
       "<Figure size 576x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "def ecdf(data):\n",
    "    n = len(data)\n",
    "    x = np.sort(data)\n",
    "    y = np.arange(1, n+1)/n\n",
    "    return x,y\n",
    "\n",
    "# Compute empirical mean and standard deviationg \n",
    "\n",
    "# Number of sample\n",
    "n = len(df['Temperature'])\n",
    "#Sample mean \n",
    "mu = np.mean(df['Temperature'])\n",
    "#Sample standard deviation\n",
    "std = np.std(df['Temperature'])\n",
    "print('Mean temperature :', mu, 'with standard deviation of +/-',std)\n",
    "\n",
    "# Random sampling of the data based off of the mean of the data.\n",
    "normalized_sample = np.random.normal(mu,std,size=10000)\n",
    "x_temperature,y_temperature = ecdf(df['Temperature'])\n",
    "normalized_x, normalized_y = ecdf(normalized_sample)\n",
    "\n",
    "#Plot the ECDFs\n",
    "fig = plt.figure(figsize=(8,5))\n",
    "plt.plot(normalized_x, normalized_y)\n",
    "plt.plot(x_temperature, y_temperature,marker='.', linestyle='none')\n",
    "plt.ylabel('ECDF')\n",
    "plt.xlabel('Temperature')\n",
    "plt.legend(('Normal Distribution', 'Sample data'))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 有学者提出98.6人类的平均体温，我们该这样认为吗？\n",
    "在这里我们选择t检验，因为我们只能计算样本的标准差"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Ttest_1sampResult(statistic=-5.454823292364077, pvalue=2.410632041561008e-07)"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from scipy import stats\n",
    "\n",
    "CW_mu = 98.6\n",
    "stats.ttest_1samp(df['Temperature'], CW_mu, axis=0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "T-Stat -5.454 p-value近乎0了，我们可以拒绝这样的假设"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 男性和女性的体温有明显差异吗\n",
    "两独立样本t检验 H0：没有明显差异 H1：有明显差异"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Average female body temperature = 98.39384615384616\n",
      "Average male body temperature = 98.1046153846154\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "Ttest_indResult(statistic=2.2854345381654984, pvalue=0.02393188312240236)"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "female_temp = df.Temperature[df.Gender == 2]\n",
    "male_temp = df.Temperature[df.Gender == 1]\n",
    "mean_female_temp = np.mean(female_temp)\n",
    "mean_male_temp = np.mean(male_temp)\n",
    "print('Average female body temperature = '+ str(mean_female_temp))\n",
    "print('Average male body temperature = '+ str(mean_male_temp))\n",
    "\n",
    "# Compute independent t-test\n",
    "stats.ttest_ind(female_temp, male_temp, axis=0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "由于P值=0.025 < 0.05， 我们拒绝原假设，我们有95%的自信认为是有差异的"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
